Le XML pour un modèle d'enregistrement
Conseil : Voir Exemples de Modèles d’Enregistrement pour des exemples de modèles d'enregistrement et une explication de leur construction.
Avant de définir les balises XML et d'examiner comment spécifier un Modèle d'enregistrement, voici un résumé rapide de la structure XML utilisée par les trois types de champs dans EMu :
Un champ atomic contient une seule valeur. Il est représenté par une seule zone de saisie de données dans le client EMu. L’extrait XML utilisé pour représenter une valeur atomique est :
<atom name="colname">valeur</atom>
où :
colname | est le nom back-end du champ. |
valeur | est le contenu du champ. |
Un champ de table imbriquée contient une liste de valeurs. Une grille est utilisée pour afficher la liste dans le client EMu. Le format XML d'une table imbriquée est le suivant :
<table name="colname"> <tuple> <atom>valeur 1</atom> </tuple> <tuple> <atom>valeur 2</atom> </tuple> ... </table>
où :
colname | est le nom back-end du champ. |
valeur 1, valeur 2, etc. | sont les valeurs dans la liste. |
Il n'y a pas de limites au nombre d'entrées <tuple>
dans une table imbriquée.
Un double champ de table imbriquée consiste en une liste où chaque entrée est elle-même une liste. Le client EMu utilise la construction imbriquée (où une grille en bas de l'onglet contrôle les données affichées) où une grille est affichée dans la partie supérieure de l'onglet. Le XML requis pour une double table imbriquée est :
<table name="colname">
<tuple>
<table>
<tuple>
<atom>valeur 1-1</atom>
</tuple>
<tuple>
<atom>valeur 1-2</atom>
</tuple>
...
</table>
</tuple>
<tuple>
<table>
<tuple>
<atom>valeur 2-1</atom>
</tuple>
...
</table>
</tuple>
...
</table>
où :
colname | est le nom back-end du champ. |
valeur 1-1, valeur 1-2, etc. | sont la liste de valeurs dans la première liste. |
valeur 2-1, valeur 2-2, etc. | sont la liste de valeurs dans la seconde liste et ainsi de suite. |
Il n'y a pas de limites au nombre de valeurs dans chacune de ces listes.
Lorsqu'on spécifie un enregistrement, les trois types de champs se trouvent entre des balises <tuple></tuple>
. Prenons un exemple dans lequel nous devons encoder les données dans l'enregistrement Personnes / Organisations suivant :
Le XML ci-dessous représente les données entrées par un utilisateur et n'inclut pas les valeurs traitées informatiquement (trouvé dans la fenêtre de groupe Nom Dérivés lorsque Automatique est réglé sur Oui) :
<tuple>
<atom name="NamPartyType">Personne</atom>
<atom name="NamTitle">Dr</atom>
<atom name="NamFirst">Charles</atom>
<atom name="NamMiddle">Jim</atom>
<atom name="NamLast">Marshall</atom>
<table name="NamOtherNames_tab">
<tuple>
<atom>Charlie</atom>
</tuple>
<tuple>
<atom>Chuck</atom>
</tuple>
</table>
<atom name="NamSex">Homme</atom>
<atom name="NamAutomatic">Oui</atom>
</tuple>
Les champs qui ne contiennent pas une valeur ne sont pas spécifiés. Vous pouvez inclure des valeurs vides si vous voulez retirer des données déjà dans le champ (ex. une valeur par défaut ajouté lors de l'ajout d'un nouvel enregistrement). Une valeur vide consiste en un tag de la forme :
<atom name="colname"/>
La description d'un Modèle d'Enregistrement est un document XML. La structure complète est :
Conseil : Voir Balises XML définies ci-dessous pour une explication de chacune des balises utilisées.
Il existe des commentaires et des instructions dans le code ci-dessous, inclus comme : <!-- Commentaire / Instruction -->. Remarque : vous devrez peut-être ajouter ou répéter du code.
- Tout ce qui est en italique doit être remplacé par la valeur correcte, par exemple un nom de colonne, un numéro, etc. :
Par exemple :
<source name="colname" rows="rowlist" nestedrows="rowlist"/>
pourrait être :
<source name="MulCreator_tab" rows="1"/>
- Comme vous pouvez le constater au point précédent, il n'est pas forcément nécessaire d'inclure toutes les valeurs (dans l'exemple précédent, seuls name= et rows= sont requis ; nestedrows= est omis).
<template maxrecord="number" setIRN="yes|no">
<tuple>
<atom name="colname"> <!-- Valeur atomique : ajouter les valeurs atomiques comme nécessaire -->
text
<source name="colname" rows="rowlist" nestedrows="rowlist"/>
<input type="text|integer|float" cols="number" rows="number" increment="number" mandatory="yes|no">
<prompt>
text
<source name="colname" rows="rowlist" nestedrows="rowlist"/>
</prompt>
<help>
text
<source name="colname" rows="rowlist" nestedrows="rowlist"/>
</help>
<value>
text
<source name="colname" rows="rowlist" nestedrows="rowlist"/>
</value>
</input>
<records/>
<number/>
</atom>
<table name="colname"> <!-- Table imbriquée ou doublement imbriquée - ajouter les tables comme nécessaire -->
<tuple> <!-- table imbriquée - répétable -->
<atom>
<!-- Ajouter le code comme pour l’atome ci-dessus -->
</atom>
</tuple>
<tuple> <!-- Table doublement imbriquée – ajouter comme nécessaire-->
<table>
<source name="colname" rows="rowlist" nestedrows="rowlist"/>
<tuple> <!-- Table imbriquée – ajouter comme nécessaire-->
<atom>
<!-- Ajouter le code comme pour l’atome ci-dessus -->
</atom>
</tuple>
</table>
</tuple>
<source name="colname" rows="rowlist" nestedrows="rowlist"/>
</table>
</tuple>
<report>
text
<column name="colname"/>
</report>
</template>
Même si le XML peut paraître complexe, la partie principale est la spécification des champs qui nécessitent la définition de valeurs. Le format du XML pour cette partie est exactement le même que celui généré par l'outil Export XML d'EMu, qui est le même que celui utilisé par l'Outil Importer XML d'EMu. En utilisant cette même structure, un enregistrement XML squelettique peut être généré en construisant un rapport avec les champs requis et en produisant un fichier Export XML. Une fois que vous avez le squelette XML, il peut être étendu pour inclure toutes les options supplémentaires nécessaires.
Chacune des balises utilisées dans la structure complète d'un document XML est décrite ici :
Le tag <template> entoure la description XML du Modèle d'Enregistrement. Il doit être le premier tag, et le tag de clôture </template> doit être le dernier tag. Les attributs associés avec ce tag représentent les options disponibles lorsque le modèle est utilisé.
Les Attributs
|
Spécifie le nombre maximum d'enregistrements qui peuvent être générés en utilisant ce Modèle. Si un nombre est donné, un indice est affiché à coté du champ de texte d'entrée Nombre d'Enregistrements à créer. Si l'attribut n'est pas spécifié, aucune limite n'existe quant au nombre d'enregistrements qui peut être créé. |
|
Indique si un NEI de départ peut être entré lorsque le Modèle d'Enregistrement est utilisé. Si la valeur non n'est pas fournie, l'invite NEI de départ et le champ d'entrée sont retirés de l'écran des Enregistrements de Modèle d'Enregistrement. La valeur par défaut est oui. |
Contient
<tuple>
<report>
Contenu entre
Aucun
La première ligne du XML est utilisée pour configurer le premier écran de l'Assistant Modèle d'enregistrement :
Cet exemple d'écran est spécifié comme :
<template maxrecord="10" setIRN="Yes">
L'écran suivant est spécifié comme :
<template maxrecord="20" setIRN="No">
L'écran suivant est spécifié comme :
<template>
Le tag <source> extrait les informations depuis l'enregistrement source (l'enregistrement en cours). Le tag est remplacé avec la(es) valeur(s) extraite(s). Les données peuvent être extraites depuis tout type de champ (atomique, table imbriquée et table doublement imbriquée) vers tout type de champ. Lorsque qu'une discordance survient entre les types de champ, les données sont soient converties en une nouvelle ligne de valeurs séparées (lorsque l'on va d'une table vers un champ atomique) ou enveloppées dans une table XML (lorsque l'on va d'une valeur atomique vers une table). En utilisant les attributs, il est possible d'extraire des parties de tables imbriquées ou de tables doublement imbriquées.
Les Attributs
|
Spécifie le nom de la colonne depuis laquelle la valeur doit être extraite. L'attribut |
|
Contient une liste de numéros qui indique quelles lignes doivent être extraites depuis une table imbriquée. La liste est un jeu de valeurs ou une étendue de valeurs séparées par des virgules. Un exemple de liste est |
|
Contient une liste de lignes qui indique lesquelles des lignes de sortie dans une table doublement imbriquée doivent être extraites. Le format de la liste de lignes est le même que pour l'attribut rows. L'attribut rows est utilisé pour spécifier les numéros de lignes intérieures qui doivent être extraites. Par défaut toutes les lignes imbriquées doivent être extraites. |
Contient
Aucun
Contenu entre
<table>
<atom>
<prompt>
<help>
<value>
Le tag <input> indique que l'utilisateur devrait se voir demander d'entrer une valeur lorsque le Modèle d'Enregistrement est utilisé. Le tag est remplacé par la valeur d'entrée. Chaque tag <input> trouvé dans la description du Modèle d'Enregistrement produit un écran Valeur d'Entrée lorsque le modèle est utilisé.
Les Attributs
|
Définit le type de données que les utilisateurs peuvent entrer. Les types disponibles sont :
Lorsque les utilisateurs quittent le champ de texte d'entrée un contrôle est réalisé pour s'assurer qu'une donnée appropriée a été saisie. Le type par défaut est |
|
Indique la largeur en caractères du champ d'entrée affiché dans l'écran de Valeurs d'Entrée lorsque le Modèle est utilisé. Le nombre ne limite pas la longueur de la valeur qui peut être entrée. Par défaut c'est 8. |
|
Spécifie le nombre de lignes que le champ de texte d'entrée devrait afficher dans l'écran de Valeurs d'Entrée lorsque le Modèle est utilisé. Les utilisateurs peuvent entrer plus de lignes que spécifiées dans le champ de texte d'entrée. Par défaut c'est 1. |
|
Indique que la valeur entrée devrait être incrémentée avec le montant d'incrémentation après la création de chaque enregistrement. Par exemple, en spécifiant |
|
Détermine si une valeur d'entrée doit être spécifiée. La valeur no indique qu'une valeur vide est acceptable, alors que yes permet de s'assurer qu'une valeur soit saisie. La valeur par défaut est oui. |
Contient
<prompt>
<help>
<value>
Contenu entre
<atom>
Le tag <prompt> apparaît à l'intérieur d'un tag <input> et définit l'invite affichée dans l'écran Valeur d'Entrée. L'invite par défaut est Input value.
Les Attributs
Aucun
Contient
text
<source>
Contenu entre
<input>
Le tag <help> apparaît à l'intérieur d'un tag <input> et spécifie un message d'aide affiché sous le champ de texte d'entrée dans l'écran de Valeurs d'Entrée. Si un tag d'aide n'est pas défini, un message d'aide n'est pas affiché.
Les Attributs
Aucun
Contient
text
<source>
Contenu entre
<input>
Le tag <value> apparaît à l'intérieur d'un tag <input> et contient la valeur initiale montrée dans le champ de texte d'entrée dans l'écran de Valeurs d'Entrée. Si une valeur n'est pas spécifiée, le champ de texte d'entrée sera vide.
Les Attributs
Aucun
Contient
text
<source>
Contenu entre
<input>
Le tag <records> est remplacé par le nombre d'enregistrements à créer.
Les Attributs
Aucun
Contient
Aucun
Contenu entre
<atom>
Le tag <number> est remplacé par le nombre d'enregistrements en cours de création.
Les Attributs
Aucun
Contient
Aucun
Contenu entre
<atom>
Le tag <report> définit le texte à afficher dans le fichier de rapport de Modèle d'Enregistrement pour chaque enregistrement créé. Le texte défini devrait identifier l'enregistrement créé uniquement (ex. Numéro d'Enregistrement).
Les Attributs
Aucun
Contient
text
<column>
Contenu entre
<template>
Le tag <column> est remplacé par la valeur dans le nom de colonne spécifiée dans l'enregistrement créé.
Les Attributs
|
Spécifie le nom de la colonne depuis laquelle la valeur doit être extraite. L'attribut |
Contient
Aucun
Contenu entre
<report>